package top.lingkang.acgv.config.auth;

import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken;
import org.springframework.security.oauth2.common.DefaultOAuth2RefreshToken;
import org.springframework.security.oauth2.common.OAuth2AccessToken;
import org.springframework.security.oauth2.provider.OAuth2Authentication;
import org.springframework.security.oauth2.provider.token.TokenEnhancer;

/**
 * 自定义生成token的值
 */
public class CustomTokenEnhancer implements TokenEnhancer {

    @Override
    public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) {
        DefaultOAuth2AccessToken token = new DefaultOAuth2AccessToken(accessToken);
//        token.setValue(customToken());
//        token.setRefreshToken(new DefaultOAuth2RefreshToken(customRefreshToken()));
        return token;
    }

    private static int i = 0;
    private static int j = 0;

    /**
     * 自定义token的值
     * 集群的时候注意不要生成重复的值即可
     */
    private String customToken() {
        i = i + 1;
        return "666" + i;
    }

    /**
     * 自定义token的值
     * 集群的时候注意不要生成重复的值即可
     */
    private String customRefreshToken() {
        j = j + 1;
        return "888" + i;
    }
}
